package com.atguigu.tingshu.album.service;

import com.alibaba.fastjson.JSONObject;
import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.model.album.TrackInfo;
import com.atguigu.tingshu.query.album.TrackInfoQuery;
import com.atguigu.tingshu.vo.album.AlbumTrackListVo;
import com.atguigu.tingshu.vo.album.TrackInfoVo;
import com.atguigu.tingshu.vo.album.TrackListVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface TrackInfoService extends IService<TrackInfo> {

    JSONObject uploadTrack(MultipartFile file);

    void saveTrackInfo(TrackInfoVo trackInfoVo);

    Page<TrackListVo> findUserAlbumPage(Page<TrackInfo> trackInfoPage, TrackInfoQuery trackInfoQuery);

    void removeTrackInfo(Long trackId);

    TrackInfo getTrackInfo(Long trackId);

    void updateTrackInfo(Long trackId, TrackInfoVo trackInfoVo);

  Object findAlbumTrackPage(Page<AlbumTrackListVo> objectPage, Long albumId);

  Object getTrackStatVo(Long trackId);

  Object findUserTrackPaidList(Long trackId);

  List<TrackInfo> getTrackInfoList(Long trackId, Integer trackCount);
}
